/*
Automatic clinic tests using a robot arm.
Copyright (C) 2010  CIC-CPC, CHU Gabriel Montpied
All other trademarks, logos and copyrights are the property
of their respective owners.

This file is part of cpc-painbot.

cpc-painbot is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

cpc-painbot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with cpc-painbot.  If not, see <http://www.gnu.org/licenses/>.
*/
#include "operation/recapitulatifseuil.h"
#include "ui_recapitulatifseuil.h"

#include "seuil/determination.h"
#include "seuil/methode.h"
#include "stimulation/stimulateur.h"

RecapitulatifSeuil::RecapitulatifSeuil(QWidget *parent) :
    QWizardPage(parent),
    ui(new Ui::RecapitulatifSeuil)
{
    ui->setupUi(this);
    setCommitPage(true);
}

RecapitulatifSeuil::~RecapitulatifSeuil()
{
    delete ui;
}

void RecapitulatifSeuil::initializePage()
{
    // Paramètres de détermination.
    qreal duree = field("stimulateur.duree").toDouble();
    bool automatique = field("stimulateur.auto").toBool();
    seuil::Determination::Type determination = seuil::Determination::Type(field("determination").toInt());
    seuil::Methode::Type methode = seuil::Methode::Type(field("methode").toInt());
    Stimulateur::Type stimulateur = Stimulateur::Type(field("stimulateur").toInt());

    ui->determinationLabel->setText(seuil::Determination::typeToString(determination));
    ui->methodeLabel->setText(seuil::Methode::typeToString(methode));
    ui->stimulateurLabel->setText(
            tr("%1."
               "<br />Durée d'un stimulus : %2s."
               "<br />Enchaînement %3 des stimulations.")
            .arg(Stimulateur::typeToString(stimulateur))
            .arg(duree)
            .arg(automatique ? tr("automatique") : tr("manuel"))
    );

    // Paramètres de zone.
    qreal rayonMax = field("zone.rayonMax").toDouble();
    qreal rayonMin = field("zone.rayonMin").toDouble();

    ui->zoneLabel->setText(
        tr("<ul>"
            "<li>Rayon max : %1mm.</li>"
            "<li>Rayon min : %2mm.</li>"
           "</ul>")
        .arg(rayonMax).arg(rayonMin)
    );

    setButtonText(QWizard::CommitButton, tr("Démarrer"));
}

void RecapitulatifSeuil::changeEvent(QEvent *e)
{
    QWizardPage::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}
